, , , , , ,

Screen, le multiplexeur de terminaux

Screen (GNU/Screen) est un utilitaire permettant d'ouvrir plusieurs terminaux dans une même console, de passer de l'un à l'autre et de les récupérer plus tard. Ceci explique sa désignation de «multiplexeur de terminaux». Il offre d'autres services très utiles comme :

Byobu est une version améliorée de Screen disponible par défaut dans Ubuntu 10.04. Il peut s'utiliser avec les mêmes commandes que Screen mais aussi avec des raccourcis F2 à F9 qui sont plus faciles à utiliser (voir l'aide disponible dans le logiciel par le menu F9.

Pré-requis

Installation

S'il ne l'est pas déjà, installez le paquet screen

Screen est disponible par défaut depuis Ubuntu 9.04, il bénéficie en plus de trois profils au choix relativement intéressants pour ceux qui n'auraient pas déjà fait le leur.

Exemple d'utilisation de Screen

Nous allons lancer dans le screen une application en ligne de commande, puis «nous détacher» de la session du screen en laissant l'application tourner dedans. Ensuite, à partir du même poste ou d'un poste distant (avec ssh par exemple) nous pourrons «nous rattacher» à la session du screen et récupérer exactement la même chose que lorsque nous nous étions détaché.

screen -S nom_de_la_session

Un message annonçant la version utilisée et indiquant que ce programme est publié sous licence GPL s'affiche à l'écran. Il ne reste plus qu'à presser la touche [ESPACE].

La nouvelle session du shell s'affiche et attend qu'on saisisse une commande, par exemple :

echo test

Le shell se présente alors comme ça :

foo@bar $ echo test
test
foo@bar $

Saisir la suite de touche clavier suivante : [CTRL]+[a] suivi de [d]

OU fermer le terminal et/ou ouvrir un autre terminal

screen -r nom_de_la_session
Le rattachement à la session du screen peut très bien se faire à distance. Nous accédons alors à notre machine via un accès ssh par exemple.

Utilisation

Lancement de Screen

Une fois passé l'écran de version, nous avons devant nous un terminal prêt à servir, nous pouvons l'utiliser comme d'habitude (en dehors des applications en mode graphique).

Si plusieurs screen sont en cours d'exécution, voilà ce que
screen -r

va afficher :

There are several suitable screens on: 
      13379.toto1 (Detached) 
      13308.toto2 (Detached) 
      13356.toto3 (Dead ???)

Type "screen [-d] -r [pid.]tty.host" to resume one of them.

Nous avons donc le choix entre plusieurs screen que l'on va préciser simplement par

screen -r 13379

ou

screen -r toto1
Si un screen est mort (toto3 dans l'exemple ci-dessus), il est possible de le supprimer en saisissant la commande
screen -wipe
Si le screen que nous essayons de rattacher n'a pas été détaché, il est possible de forcer son détachement de la console précédente avec l'option "-d", ou d'avoir plusieurs attachements simultanés (option "-x", voir «Partager un terminal»).

Créer un nouveau terminal

Saisir la suite de touche clavier suivante : [CTRL]+[a] suivi de [c]

Si vous avez auparavant exécuté une commande, le contenu du terminal devrait visiblement changer : vous êtes dans le nouveau terminal dont vous venez de demander la création.

Fermer un terminal

exit

Détacher screen

Partager un terminal

Imaginez que vous vouliez que quelqu'un fasse quelque chose à distance sur votre machine, mais que vous souhaiteriez voir ce qu'il fait, alors screen va vous aider :)

screen -S toto

Votre ami se connecte sur votre machine via ssh par exemple et saisit la commande suivante :

screen -x toto

À partir de là, tout ce qui est saisi dans un des 2 terminaux (le vôtre ou le sien) apparaît sur les deux. Si il n'y a qu'un seul screen de lancé, il n'est pas nécessaire de préciser son nom lors de la connexion.

Raccourcis supplémentaires

Séparation de la console :

A noter que la suppression d'une ou plusieurs régions ne supprime pas les consoles qui s'y trouvaient.

Divers :

Déplacement et copie :

Personnaliser son screen

Il est possible pour chaque utilisateur du système de personnaliser son screen grâce à un fichier de configuration spécifique : «~/.screenrc». Un exemple d'un tel fichier est disponible dans /etc/screenrc. Il vous suffit de faire :

cp /etc/screenrc ~/.screenrc

Et vous pourrez ensuite le personnaliser comme bon vous semble.

Il est possible de changer le caractère d'échappement (CTRL+a). De cette manière, vous avez un caractère d'échappement sur votre machine et un différent sur une machine distante. Et grâce à cela, vous pouvez faire du screen dans un screen. http://forum.ubuntu-fr.org/viewtopic.php?id=846021

Voir aussi

—- Contributeurs : Termitor, Benoît « Beny » Pineau, loack, petitchevalroux, gardouille, boubou_cs.